package com.itheima_03;

import javax.swing.*;
import java.util.Random;

public class PictureFrame extends JFrame {

    private int[][] datas = {
            {1, 2, 3, 4},
            {5, 6, 7, 8},
            {9, 10, 11, 12},
            {13, 14, 15, 0}
    };

    //定义两个int类型的变量，用于记录0号图片的位置
     private int x0;
     private int y0;
     
    public PictureFrame() {
        //用于窗体的基本设置
        initFrame();
        //二维数组元素打乱
        randomData();
        //窗体上组件的绘制
        paintView();
        //设置窗体可见
        this.setVisible(true);
    }

    //二维数组元素打乱
    public void randomData() {
        Random r = new Random();
        for (int i = 0; i < datas.length; i++) {
            for (int j = 0; j < datas[i].length; j++) {
                int x = r.nextInt(datas.length);
                int y = r.nextInt(datas[i].length);

                int temp = datas[i][j];
                datas[i][j] = datas[x][y];
                datas[x][y]=temp;
            }
        }

        //记录0号图片的位置
        wc:for (int i = 0; i < datas.length; i++) {
            for (int j = 0; j < datas[i].length; j++) {
                if (datas[i][j] == 0) {
                    x0=i;
                    y0=j;
                    break wc;
                }
            }
        }
        System.out.println(x0+","+y0);
    }

    //窗体上组件的绘制
    public void paintView() {
        //标题图片
        JLabel titleLable = new JLabel(new ImageIcon("E:\\java\\javaTest\\itheima-picture-puzzle\\images\\title.png"));
        titleLable.setBounds(354, 27, 232, 57);
        this.add(titleLable);

        //定义一个二维数组,用来存储图片的编号
      /*  int[][] datas = {
                {1, 2, 3, 4},
                {5, 6, 7, 8},
                {9,10,11,12},
                {13,14,15,16}
        };*/

        //创建面板
        JPanel iamgePanel = new JPanel();
        iamgePanel.setBounds(150, 114, 360, 360);
        iamgePanel.setLayout(null);
        //遍历二维数组,得到图片编号
        for (int i = 0; i < datas.length; i++) {
            for (int j = 0; j < datas[i].length; j++) {
                //创建JLable对象,加载图片资源
                JLabel imageLable = new JLabel(new ImageIcon("E:\\java\\javaTest\\itheima-picture-puzzle\\images\\" + datas[i][j] + ".png"));
                //调整图片的位置
                imageLable.setBounds(j * 90, i * 90, 90, 90);
                iamgePanel.add(imageLable);
            }
        }
        //把面板添加到窗体上
        this.add(iamgePanel);

        //动漫参照图
        JLabel canzhaotuLabel = new JLabel(new ImageIcon("E:\\java\\javaTest\\itheima-picture-puzzle\\images\\canzhaotu.png"));
        canzhaotuLabel.setBounds(574, 114, 122, 121);
        this.add(canzhaotuLabel);

        //上下左右,求助，重叠按钮
        JButton shangButton = new JButton(new ImageIcon("E:\\java\\javaTest\\itheima-picture-puzzle\\images\\shang.png"));
        shangButton.setBounds(732, 265, 57, 57);
        this.add(shangButton);

        JButton zuoButton = new JButton(new ImageIcon("E:\\java\\javaTest\\itheima-picture-puzzle\\images\\zuo.png"));
        zuoButton.setBounds(650, 347, 57, 57);
        this.add(zuoButton);

        JButton xiaButton = new JButton(new ImageIcon("E:\\java\\javaTest\\itheima-picture-puzzle\\images\\xia.png"));
        xiaButton.setBounds(732, 347, 57, 57);
        this.add(xiaButton);

        JButton youButton = new JButton(new ImageIcon("E:\\java\\javaTest\\itheima-picture-puzzle\\images\\you.png"));
        youButton.setBounds(813, 347, 57, 57);
        this.add(youButton);

        JButton qiuzhuButton = new JButton(new ImageIcon("E:\\java\\javaTest\\itheima-picture-puzzle\\images\\qiuzhu.png"));
        qiuzhuButton.setBounds(626, 444, 108, 45);
        this.add(qiuzhuButton);

        JButton chongzhiButton = new JButton(new ImageIcon("E:\\java\\javaTest\\itheima-picture-puzzle\\images\\chongzhi.png"));
        chongzhiButton.setBounds(756, 444, 108, 45);
        this.add(chongzhiButton);

        //展示背景图
        JLabel backgroundLabel = new JLabel(new ImageIcon("E:\\java\\javaTest\\itheima-picture-puzzle\\images\\background.png"));
        backgroundLabel.setBounds(0, 0, 960, 530);
        this.add(backgroundLabel);
    }
    //用于窗体的基本设置
    public void initFrame() {
        //窗体大小
        this.setSize(960, 565);
        //窗体标题
        this.setTitle("动漫拼图");
        //窗体居中
        this.setLocationRelativeTo(null);
        //窗体关闭时，退出应用
        this.setDefaultCloseOperation(3);
        //窗体位于其他窗口之上
        this.setAlwaysOnTop(true);
        //取消窗体默认布局
        this.setLayout(null);
    }
}
